SeamlessM4T的語音數據處理流程不複雜,前置作業有二:1) 用SeamlessAlign將原始音頻數據做前處理,區別數據中的語言,並對齊數據的長度、維度、分割組合等參數。2) 備好四種預訓練完成的模型,SeamlessM4T-NLLB作為文本的編碼-解碼器;w2v-BERT 2.0非監督模型作為語音編碼器;T2U作為文本對Unit的編碼-解碼器;Vocoder為聲音合成之聲碼器。
接著正式進入轉譯流程,語音及文本數據分別編碼好後,送進已訓練好的SeamlessM4T-NLLB模型作解碼,即可完成ASR(Automatic Speech Recognition)、T2TT(Text-to-Text Translation)、S2TT(Speech-to-Text translation)的任務。而後再依序作Text-to-Unit、Unit解碼,最後用對抗生成Unit聲碼器編譯為語音訊號,即完成S2ST任務。
利用SeamlessM4T的S2ST功能(Speech-to-Speech Translation),將輸入之語音檔匯入預備好的轉譯器(Translator),選擇任務s2st,設定目標語言即可做轉譯,並產生目標語言的音檔。若使用英語語音轉中文語音,內容算是正確,但是中文語音聽起來有機械感,也非台灣口音。而繁體中文文本轉英語文本的話,內容也可以翻譯正確,依據功能測試”s2tt”、”s2st”中,轉成中文都預設轉為簡體中文,但其實測試確認繁體中文也可以作轉譯。另外若使用繁體中文文本轉英語語音,翻譯內容正確,不過比較之下轉譯後的英語語音,口氣通順,且就算輸入文本中沒有連接詞,也會自行預測可能的連接詞;相較之下轉譯後的中文語音,聽起很明顯的機械感,還尚待優化。若使用英語語音轉中文文本,翻譯內容不是很通順,且筆者覺得它的功能跟S2TT有重疊到,這個功能感覺上會被S2TT取代。
最後利用WER(Word Error Rate)來評估既有的SeamlessM4T的S2TT的功能,翻譯對象為隨機選擇20個Kaggle孟加拉語挑戰中提供的音檔,20個音檔翻譯中WER最小為0(表示翻譯結果完全正確),最大為1.25(表示翻譯結果差異非常大),平均下來WER為0.24,表示對於孟加拉語SeamlessM4T也有一定程度的轉譯正確率。